home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
DEMON
/
RISCOS2
/
TCP_131S.ARC
/
c
/
driver
< prev
next >
Wrap
Text File
|
1993-03-12
|
2KB
|
84 lines
/* _____________________________________________
[> <]
Project [> ARCterm VII <]
Author [> Hugo Fiennes <]
Date started [> 05-March-1990 <]
[> <]
Module name [> Driver loading <]
Current version [> 00.03 <]
Version date [> 24-November-1992 <]
State [> Unfinished <]
[> <]
[> This source is COPYRIGHT © 1992 by <]
[> Hugo Fiennes of The Serial Port <]
[>_____________________________________________<]
*/
#include <stdio.h>
#include <stdlib.h>
int *driver_speedtable,driver_flags,driver_version,driver_noofspeeds;
char *driver_info,*driver_creator;
void *driver_load(char *driver)
{
FILE *drv; long len; char fname[80]; int *driver_block;
/* Make driver filename */
sprintf(fname,"SerialDev:Modules.%s.Driver",driver);
if ((drv=fopen(fname,"rb"))==NULL) return(NULL);
fseek(drv,0,SEEK_END);
len=ftell(drv);
fseek(drv,0,SEEK_SET);
if ((driver_block=malloc(len))==NULL)
{
/* Can't get space for driver */
fclose(drv);
return(0);
}
/* Load driver */
fread(driver_block,1,len,drv);
fclose(drv);
driver_flags=driver_block[49];
driver_version=driver_block[48];
driver_speedtable=&driver_block[64];
driver_info=(char*)&driver_block[32];
driver_creator=(char*)&driver_block[40];
driver_noofspeeds=0;
while(driver_speedtable[driver_noofspeeds++]);
driver_noofspeeds--;
return(driver_block);
}
void *pipe_load(char *name)
{
FILE *drv; long len; char fname[80];
int *terminal_block;
/* Make driver filename */
sprintf(fname,"SerialDev:Modules.%s.Driver", name);
if ((drv=fopen(fname,"rb"))==NULL) return(NULL);
fseek(drv,0,SEEK_END);
len=ftell(drv);
fseek(drv,0,SEEK_SET);
if ((terminal_block=malloc(len))==NULL)
{
/* Can't get space for driver */
fclose(drv);
return(0);
}
/* Load driver */
fread(terminal_block,1,len,drv);
fclose(drv);
return(terminal_block);
}